#define  _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>

using namespace std;


class Solution {
public:
    int waysToStep(int n) {

        if (n == 2)  return 2;
        if (n == 3)  return 4;
        if (n == 1)  return 1;

        const int MOD = 1e9 + 7;
        //创建dp表


        vector<int> dp(n + 1);

        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 4;

        for (int i = 4; i <= n; i++)
            dp[i] = ((dp[i - 1] + dp[i - 2]) % MOD + dp[i - 3]) % MOD;

        return dp[n];


    }
};



int main()
{

    return 0;
}